﻿namespace ConsoleApp.Tree;

public interface IHierarchical<out T>
{
    T Current { get; }
    IHierarchical<T> Root { get; }
    IHierarchical<T> Parent { get; }
    IEnumerable<IHierarchical<T>> Children { get; }
    IEnumerable<IHierarchical<T>> Descendants { get; }
    bool IsLeaf { get; }
    bool HasChild { get; }
    int Level { get; }
    int Height { get; }
}